package DataLayer.DataManager;

import DataLayer.ImageDataContainer.ImageComponentsInfo.CharacterStatistics;
import DataLayer.ImageDataContainer.ImageComponentsInfo.IImageComponentsInfo;
import DataLayer.ImageDataContainer.ImageInfo.IImageInfo;
import DataLayer.ImageDataContainer.RetrievedText.IRetrievedText;
import DataLayer.KnowledgeBase.IKnowledgeBaseControl;

public interface IDataManager {

    /**
     * Returns the IImageInfo component.
     * @return - The IImageInfo component.
     */
    public IImageInfo getImageInfo();

    /**
     * Sets the IImageInfo component with the specified component from the parameter.
     * @param imgInfoParam - The IImageInfo component.
     */
    public void setImageInfo(IImageInfo imgInfoParam);

    /**
     * Returns the IImageComponentsInfo component.
     * @return - The IImageComponentsInfo component.
     */
    public IImageComponentsInfo getImageComponentsInfo();


    /**
     * Returns the KnowledgeBase Control component.
     * @return - The KnowledgeBase Control component.
     */
    public IKnowledgeBaseControl getKnowledgeBaseControl();

    /**
     * Returns the CharacterStatistics component.
     * @return - The CharacterStatistics component.
     */
    public CharacterStatistics getCharacterStatistics();

    /**
     * Returns the IRetrievedText component.
     * @return - The IRetrievedText component.
     */
    public IRetrievedText getRetrievedTextComponent();

    public void setImageComponentsInfo(IImageComponentsInfo compInfo);

    public void setRetrievedText(String text);
}
